---
title: Hearing location maintenance
summary: End-to-end workflow for maintaining hearing-location reference data.
status: draft
owner: SAIF Doc Gen
last_reviewed: 2026-08-21
operation_id: OP-APP-003
trigger: User navigates to the hearing location screen via the master-page menu
---

# Hearing location maintenance

This workflow lets legal administrative staff maintain hearing-location reference data (locations, location codes, and duration codes) through the `frmHearingLocation` screen, using the same manager lifecycle as attorney profile maintenance.

| Field | Value |
| --- | --- |
| **Operation ID** | OP-APP-003 |
| **Trigger** | User opens `frmHearingLocation.aspx` |
| **Libraries involved** | [SAIF.Application.Claim.Legal](../../libraries/saif-application-claim-legal/overview.md), [SAIF.Business.Claim.Legal](../../libraries/saif-business-claim-legal/overview.md) |
| **Screens** | Hearing Location screen (`frmHearingLocation.aspx`) |
| **Inputs** | Hearing location, location code, and duration code data |
| **Outputs** | Updated `HEARING_LOCATION`/`HEARING_LOCATION_CODE`/`DURATION_CODE` records |

## Steps

1. User opens `frmHearingLocation.aspx` in LegalMaintenance.
2. The screen instantiates `clsHearingLocationManager`, part of [SAIF.Application.Claim.Legal](../../libraries/saif-application-claim-legal/overview.md), inheriting the same lifecycle/security template as attorney profile maintenance ([BR-APP-001](../business-rules.md#br-app-001-ad-group-gated-view-only-mode-controls-toolbar-edits)).
3. The manager reads/writes `HEARING_LOCATION`, `HEARING_LOCATION_CODE`, `DURATION_CODE` via [SAIF.Business.Claim.Legal](../../libraries/saif-business-claim-legal/overview.md).
4. A known defect can cause a fallback manager type-cast mismatch under an inverted empty-collection guard, which can surface the wrong manager instance in edge cases.*

## Process flow

The following diagram visualizes the hearing location maintenance workflow.

```mermaid
flowchart TD
	Start(["User opens<br>frmHearingLocation"]) --> S1["Instantiate<br>clsHearingLocationManager"]
	S1 --> S2["Manager lifecycle:<br>Initialize to<br>OnCreateDataLayer to<br>OnCheckSecurity to<br>OnRetrieve"]
	S2 --> S3["Read/write HEARING_LOCATION,<br>HEARING_LOCATION_CODE,<br>DURATION_CODE"]
	S3 --> D{"Empty-collection guard<br>triggers fallback?"}
	D -->|Yes, edge case| Err(["Wrong manager instance may<br>surface"])
	D -->|No| EndOk([Maintenance succeeds])
```

## Failure and edge-case behavior
- The inverted empty-collection guard combined with a fallback manager type-cast bug can silently select the wrong manager instance in edge cases.*

## Related documentation
- [Operations and processes](../operations-processes.md)
- [Business rules](../business-rules.md)
- [Data model](../data-model.md)

> **Note:** Statements marked with `*` were inferred from code structure, naming
> conventions, or contextual evidence where direct confirmation was not available
> in source artifacts.

## Sources
- LegalMaintenance web application (LegalMaintenance/*.aspx.vb)
- LegalMaintenance web application (LegalMaintenance/*.aspx.vb)
- [SAIF.Business.Claim.Legal](../../libraries/saif-business-claim-legal/overview.md)
